const {
  User
} = require('../models/index') // 引入user表

class UserService {
  // 根据id查询
  async getUserById(id) {
    return User.findAll({
      where: {
        id: id
      }
    })
  }
  
  // 根据用户名查询
  async getUserByUserName(username) {
    return User.findAll({
      where: {
        username,
      }
    })
  }

  // 根据手机号查询
  async getUserByPhone(phone) {
    return User.findAll({
      where: {
        phone,
      },
    })
  }
  
  // 新增账户
  async createUser(user) {
    return User.create(user)
  }
  
  async getUserList(params) {
    return User.findAndCountAll({
      attributes: { exclude: ['password'] },
      limit: parseInt(params.pagesize),
      // 跳过实例数目
      offset: (params.pagenum - 1) * parseInt(params.pagesize)
    })
  }
  
  // 更新账户
  async updateUser(userId, data) {
    return User.update(data, {
      where: {
        id: userId
      },
    })
  }
  
  // 删除账户
  async deleteUser(id) {
    return User.destroy({
      where: {
        id: id
      },
    })
  }

  // 查询用户信息
  async getUserInfo(username) {
    return User.findAll({
      where: {
        username,
      },
      attributes: { exclude: ['password'] }
    })
  }

  // 保存用户头像
  async saveAvatar (avatarUrl, userId) {
    return User.update({
      avatarurl: avatarUrl
    }, {
      where: {
        id: userId
      },
    })
  }

  async updateUserIntegral (integral, userId) {
    const user = await User.findAll({
      where: {
        id: userId
      }
    })
    return User.update({
      integral: user[0].dataValues.integral + integral
    }, {
      where: {
        id: userId
      },
    })
  }
}

module.exports = new UserService()